using BusinessLogic.Mappers.AccountCode;
using BusinessLogic.Mappers.AccountCode.Mapping;
using BusinessLogic.Mappers.Currency;
using BusinessLogic.Mappers.Currency.Mapping;
using BusinessLogic.Mappers.CurrencyConversion;
using BusinessLogic.Mappers.CurrencyConversion.Mapping;
using BusinessLogic.Mappers.DocumentEnvelopes;
using BusinessLogic.Mappers.DocumentEnvelopes.Mapping;
using BusinessLogic.Mappers.RemittanceAdvice;
using BusinessLogic.Mappers.RemittanceAdvice.Mapping;
using BusinessLogic.Mappers.User;
using BusinessLogic.Mappers.User.Mapping;
using DataAccess.Services;

namespace BusinessLogic.Mappers
{
	public static class MapperFactory
	{
		public static IRemittanceAdviceMapper GetRemittanceAdviceMapper(IServiceManager manager)
		{
			return new RemittanceAdviceMapper(manager, new RemittanceAdviceMapping(), manager.RemittanceAdvice);
		}

		public static IUserMapper GetUserMapper(IServiceManager manager)
		{
			return new UserMapper(manager, new UserMapping(), manager.User);
		}

		public static ICurrencyMapper GetCurrencyMapper(IServiceManager manager)
		{
			return new CurrencyMapper(manager, new CurrencyMapping(), manager.Currency);
		}

		public static IAccountMapper GetAccountMapper(IServiceManager manager)
		{
			return new AccountMapper(manager, new AccountMapping(), manager.Account);
		}

		public static IDocumentEnvelopeMapper GetDocumentEnvelopeMapper(IServiceManager manager)
		{
			return new DocumentEnvelopeMapper(manager, new DocumentEnvelopeMapping(), manager.DocumentEnvelope);
		}

		public static ICurrencyConversionMapper GetCurrencyConversionMapper(IServiceManager manager)
		{
			return new CurrencyConversionMapper(manager, new CurrencyConversionMapping(), manager.CurrencyConversion);
		}
	}
}